// pages/addPost/addPost.js
const DB=wx.cloud.database().collection("postList");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    address:'点击选择地点',
    location:{},
    date:'点击选择时间',
    user:'',
    event:'',
    isDisabled:true,
    isEdit:false,
    id:'',
    title:'创建请帖'
  },

  /**选择地点 */
  openMap(){
    const that=this;
    wx.getLocation({
      type: 'gcj02',
      success(ret){
        wx.chooseLocation({
          latitude:ret.latitude,
          longitude:ret.longitude,
          success(res){
            that.setData({
              address:res.name,
              location:res
            })
            that.ischeck();
          },
          fail(res){
            console.log(res);
          }
        })
      }
    })

  },

  /**选择时间 */
  handleDate(ret){
    this.setData({
      date:ret.detail.value
    })
    this.ischeck();
  },

  /**姓名 */
  handleuser(e){
    this.setData({
      user:e.detail.value
    })
    this.ischeck();
  },

  /**事件 */
  handleevent(e){
    this.setData({
      event:e.detail.value
    })
    this.ischeck();
  },

  /**判断是否可以提交表单 */
  ischeck(){
    const {user,event,address,date}=this.data;
    if(user != '' && event != '' && address != '点击选择地点' && date != '点击选择时间'){
      this.setData({
        isDisabled:false
      })
    }else{
      this.setData({
        isDisabled:true
      })
    }
  },

  /**提交表单 */
  formsubmit(){
    const that=this;
    const openid=wx.getStorageSync('openid');
    if(openid==''||openid==null){
      wx.showModal({
        title:'未登录',
        content:'是否进行登录？',
        success (res) {
          if (res.confirm) {
            that.login();
          }
        }
      })
    }else{
      that.submitData();
    }
    
  },

  /**登录 */
  login(){
    const that=this;
    wx.getUserProfile({
      lang:'zh_CN',
      desc:'用于小程序内部登录',
      success(ret){
        
        // 将获取到的用户信息写入缓存中
        wx.setStorageSync('userInfo', ret.userInfo);
        that.getOpenid(ret.userInfo);


      },
      // 用户点了拒绝登录
      fail(){
        wx.hideLoading();
        wx.showToast({
          title: '创建失败',
          icon:'error',
          duration:2000
        });
      }
    })
  },

    // 获取openid
    getOpenid(userInfo){
      const that=this;
      // 获取openid
      wx.cloud.callFunction({
        //云函数名
        name:'login',
        //回调函数
        success(res){
          // 将当前登录用户设置在缓存中
          wx.setStorageSync('openid', res.result.openid);
          const DD=wx.cloud.database().collection("userDate");
          // 通过openid查询云数据库中是否有该用户
          DD.where({
            _openid:res.result.openid
          }).get({
            success(res){
              // 如果查找到的结果长度是0，说明该用户是第一次登录，则需要进行保存
              if(res.data.length==0){
                console.log('该用户是新用户！');
                DD.add({
                  data:{
                    nickName:userInfo.nickName,
                    city:userInfo.city,
                    country:userInfo.country,
                    language:userInfo.language
                  }
                })
                
              }else{
                console.log('该用户是老用户了！');
              }
              // 登录成功
              wx.hideLoading();
            }
          })
          /**提交数据 */
          that.submitData();
        }
      });
    },

  /**将数据提交 */
  submitData(){
    const {user,event,location,date,id}=this.data;

    /**提交的数据 */
    let data={
      user:user,
      event:event,
      location:location,
      date:date,
      receive:[]
    }
    
    /**判断是不是编辑 */
    if(this.data.isEdit){
      wx.showModal({
        title: '提示',
        content: '提交修改后，此前好友收到的该请帖将被收回，您需要重新分享此请帖给好友！是否继续？',
        success (res) {
          if (res.confirm) {
            DB.doc(id).update({
              data:data,
              success(res){
                wx.hideLoading();
                wx.navigateBack();
              }
            })
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })

    /**判断是不是初次提交 */
    }else{
      DB.add({
        data:data,
        success(res){
          wx.hideLoading();
          wx.navigateBack();
        }
      })
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const that=this;
    if(options.id != undefined){
      DB.doc(options.id).get({
        success(ret){
          that.setData({
            address:ret.data.location.name,
            location:ret.data.location,
            date:ret.data.date,
            user:ret.data.user,
            event:ret.data.event,
            isDisabled:false,
            isEdit:true,
            id:ret.data._id,
            title:'编辑请帖'
          })
        }
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})